home *** CD-ROM | disk | FTP | other *** search
/ The AGA Experience 3 / AGA Experience Volume 3 (1997)(NFA - SAdENESS)[!].iso / software / utilities / graphics / raylab / source / platform.c < prev    next >
C/C++ Source or Header  |  1996-08-23  |  2KB  |  95 lines

  1. /*
  2.     name:    platform.c
  3.  
  4.     Misc. generic platform specific code
  5.     ------------------------------------
  6.  
  7.  
  8.     This source-code is part of the RayLab 1.1 package, and it is provided
  9.     for your compiling pleasure.  You may use it, change it, re-compile it
  10.     etc., as long as nobody else but you receive the changes/compilations
  11.     that you have made!
  12.  
  13.     You may not use any part(s) of this source-code for your own productions
  14.     without the permission from the author of RayLab. Please read the legal
  15.     information found in the users documentation for RayLab for more details.
  16.  
  17. */
  18.  
  19.  
  20. #include  <stdio.h>
  21. #include  <signal.h>
  22.  
  23. #include  "defs.h"
  24. #include  "extern.h"
  25.  
  26.  
  27. void BreakHandler(int SigNum);
  28. void FPErrHandler(int SigNum);
  29. void SEGErrHandler(int SigNum);
  30.  
  31.  
  32.  
  33. /******************************************************************
  34.  *
  35.  *  InitPlatform()
  36.  *
  37.  ******************************************************************/
  38.  
  39. void InitPlatform(void)
  40. {
  41.     textoutput = stderr;    /* Use stderr for text output */
  42.  
  43.     /* Install break-handlers */
  44.     (void) signal(SIGINT, (void *)BreakHandler);
  45.     (void) signal(SIGTERM, (void *)BreakHandler);
  46.     (void) signal(SIGFPE, (void *)FPErrHandler);
  47.     (void) signal(SIGSEGV, (void *)SEGErrHandler);
  48. }
  49.  
  50.  
  51. /******************************************************************
  52.  *
  53.  *  CloseDownPlatform()
  54.  *
  55.  ******************************************************************/
  56.  
  57. void CloseDownPlatform(void)
  58. {
  59.  
  60. }
  61.  
  62.  
  63. /******************************************************************
  64.  
  65.     Interrupt handlers
  66.  
  67.  ******************************************************************/
  68.  
  69. /* This routine is called if CTRL-C is issued */
  70.  
  71. void BreakHandler(int SigNum)
  72. {
  73.     fprintf(textoutput,"\n*** RayLab was interrupted. Closing down...\n");
  74.     cleanup();
  75.     exit(1);
  76. }
  77.  
  78. /* This routine is called in the case of a floating point error */
  79.  
  80. void FPErrHandler(int SigNum)
  81. {
  82.     fprintf(textoutput,"\n*** Floating point error. Closing down...\n");
  83.     cleanup();
  84.     exit(1);
  85. }
  86.  
  87. /* This routine is called in the case of a segmentation violation */
  88.  
  89. void SEGErrHandler(int SigNum)
  90. {
  91.     fprintf(textoutput,"\n*** Segmentation error. Closing down...\n");
  92.     cleanup();
  93.     exit(1);
  94. }
  95.